/* tslint:disable */
/* eslint-disable */
/**
 * Admin.NET 通用权限开发平台
 * 让 .NET 开发更简单、更通用、更流行。整合最新技术，模块插件式开发，前后端分离，开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！</font></b></u>
 *
 * OpenAPI spec version: 1.0.0
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */
import globalAxios, { AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';
import { Configuration } from '../configuration';
// Some imports not used depending on template conditions
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
import { AdminResultIActionResult } from '../models';
import { AdminResultListSysFile } from '../models';
import { AdminResultSqlSugarPagedListSysFile } from '../models';
import { AdminResultString } from '../models';
import { AdminResultSysFile } from '../models';
import { DeleteFileInput } from '../models';
import { PageFileInput } from '../models';
import { SysFile } from '../models';
import { UploadFileFromBase64Input } from '../models';
/**
 * SysFileApi - axios parameter creator
 * @export
 */
export const SysFileApiAxiosParamCreator = function (configuration?: Configuration) {
	return {
		/**
		 *
		 * @summary 删除文件 🔖
		 * @param {DeleteFileInput} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileDeletePost: async (body?: DeleteFileInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/delete`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			if (!localVarRequestOptions.headers) {
				localVarRequestOptions.headers = {};
			}
			const needsSerialization = typeof body !== 'string' || localVarRequestOptions.headers['Content-Type'] === 'application/json';
			localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : body || '';

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 下载指定文件Base64格式 🔖
		 * @param {string} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileDownloadFileBase64Post: async (body?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/downloadFileBase64`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			if (!localVarRequestOptions.headers) {
				localVarRequestOptions.headers = {};
			}
			const needsSerialization = typeof body !== 'string' || localVarRequestOptions.headers['Content-Type'] === 'application/json';
			localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : body || '';

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 根据文件Id或Url下载 🔖
		 * @param {SysFile} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileDownloadFilePost: async (body?: SysFile, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/downloadFile`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			if (!localVarRequestOptions.headers) {
				localVarRequestOptions.headers = {};
			}
			const needsSerialization = typeof body !== 'string' || localVarRequestOptions.headers['Content-Type'] === 'application/json';
			localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : body || '';

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 获取文件 🔖
		 * @param {number} [id]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileFileGet: async (id?: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/file`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			if (id !== undefined) {
				localVarQueryParameter['id'] = id;
			}

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 获取文件分页列表 🔖
		 * @param {PageFileInput} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFilePagePost: async (body?: PageFileInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/page`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			if (!localVarRequestOptions.headers) {
				localVarRequestOptions.headers = {};
			}
			const needsSerialization = typeof body !== 'string' || localVarRequestOptions.headers['Content-Type'] === 'application/json';
			localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : body || '';

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 文件预览 🔖
		 * @param {number} id
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFilePreviewIdGet: async (id: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			// verify required parameter 'id' is not null or undefined
			if (id === null || id === undefined) {
				throw new RequiredError('id', 'Required parameter id was null or undefined when calling apiSysFilePreviewIdGet.');
			}
			const localVarPath = `/api/sysFile/preview/{id}`.replace(`{${'id'}}`, encodeURIComponent(String(id)));
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 根据关联查询附件
		 * @param {string} [relationName] 关联对象名称
		 * @param {number} [relationId] 关联对象Id
		 * @param {string} [fileTypes] 文件类型：多个以\&quot;,\&quot;分割
		 * @param {number} [belongId] 所属Id
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileRelationFilesGet: async (relationName?: string, relationId?: number, fileTypes?: string, belongId?: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/relationFiles`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			if (relationName !== undefined) {
				localVarQueryParameter['RelationName'] = relationName;
			}

			if (relationId !== undefined) {
				localVarQueryParameter['RelationId'] = relationId;
			}

			if (fileTypes !== undefined) {
				localVarQueryParameter['FileTypes'] = fileTypes;
			}

			if (belongId !== undefined) {
				localVarQueryParameter['BelongId'] = belongId;
			}

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 更新文件 🔖
		 * @param {SysFile} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileUpdatePost: async (body?: SysFile, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/update`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			if (!localVarRequestOptions.headers) {
				localVarRequestOptions.headers = {};
			}
			const needsSerialization = typeof body !== 'string' || localVarRequestOptions.headers['Content-Type'] === 'application/json';
			localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : body || '';

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 上传头像 🔖
		 * @param {Blob} [file]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileUploadAvatarPostForm: async (file?: Blob, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/uploadAvatar`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;
			const localVarFormParams = new FormData();

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			if (file !== undefined) {
				localVarFormParams.append('file', file as any);
			}

			localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			localVarRequestOptions.data = localVarFormParams;

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 上传文件Base64 🔖
		 * @param {UploadFileFromBase64Input} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileUploadFileFromBase64Post: async (body?: UploadFileFromBase64Input, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/uploadFileFromBase64`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';

			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			if (!localVarRequestOptions.headers) {
				localVarRequestOptions.headers = {};
			}
			const needsSerialization = typeof body !== 'string' || localVarRequestOptions.headers['Content-Type'] === 'application/json';
			localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : body || '';

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 上传文件 🔖
		 * @param {Blob} [file]
		 * @param {string} [path]
		 * @param {string} [savePath]
		 * @param {string} [allowSuffix]
		 * @param {string} [fileType]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileUploadFilePostForm: async (file?: Blob, path?: string, savePath?: string, allowSuffix?: string, fileType?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/uploadFile`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;
			const localVarFormParams = new FormData();

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			if (file !== undefined) {
				localVarFormParams.append('File', file as any);
			}

			if (path !== undefined) {
				localVarFormParams.append('Path', path as any);
			}

			if (savePath !== undefined) {
				localVarFormParams.append('SavePath', savePath as any);
			}

			if (allowSuffix !== undefined) {
				localVarFormParams.append('AllowSuffix', allowSuffix as any);
			}

			if (fileType !== undefined) {
				localVarFormParams.append('FileType', fileType as any);
			}

			localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			localVarRequestOptions.data = localVarFormParams;

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 上传多文件 🔖
		 * @param {Array<Blob>} [files]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileUploadFilesPostForm: async (files?: Array<Blob>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/uploadFiles`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;
			const localVarFormParams = new FormData();

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			if (files) {
				files.forEach((element) => {
					localVarFormParams.append('files', element as any);
				});
			}

			localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			localVarRequestOptions.data = localVarFormParams;

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
		/**
		 *
		 * @summary 上传电子签名 🔖
		 * @param {Blob} [file]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		apiSysFileUploadSignaturePostForm: async (file?: Blob, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
			const localVarPath = `/api/sysFile/uploadSignature`;
			// use dummy base URL string because the URL constructor only accepts absolute URLs.
			const localVarUrlObj = new URL(localVarPath, 'https://example.com');
			let baseOptions;
			if (configuration) {
				baseOptions = configuration.baseOptions;
			}
			const localVarRequestOptions: AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options };
			const localVarHeaderParameter = {} as any;
			const localVarQueryParameter = {} as any;
			const localVarFormParams = new FormData();

			// authentication Bearer required
			// http bearer authentication required
			if (configuration && configuration.accessToken) {
				const accessToken = typeof configuration.accessToken === 'function' ? await configuration.accessToken() : await configuration.accessToken;
				localVarHeaderParameter['Authorization'] = 'Bearer ' + accessToken;
			}

			if (file !== undefined) {
				localVarFormParams.append('file', file as any);
			}

			localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
			const query = new URLSearchParams(localVarUrlObj.search);
			for (const key in localVarQueryParameter) {
				query.set(key, localVarQueryParameter[key]);
			}
			for (const key in options.params) {
				query.set(key, options.params[key]);
			}
			localVarUrlObj.search = new URLSearchParams(query).toString();
			let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
			localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
			localVarRequestOptions.data = localVarFormParams;

			return {
				url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
				options: localVarRequestOptions,
			};
		},
	};
};

/**
 * SysFileApi - functional programming interface
 * @export
 */
export const SysFileApiFp = function (configuration?: Configuration) {
	return {
		/**
		 *
		 * @summary 删除文件 🔖
		 * @param {DeleteFileInput} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileDeletePost(body?: DeleteFileInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileDeletePost(body, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 下载指定文件Base64格式 🔖
		 * @param {string} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileDownloadFileBase64Post(body?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultString>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileDownloadFileBase64Post(body, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 根据文件Id或Url下载 🔖
		 * @param {SysFile} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileDownloadFilePost(body?: SysFile, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultIActionResult>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileDownloadFilePost(body, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 获取文件 🔖
		 * @param {number} [id]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileFileGet(id?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileFileGet(id, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 获取文件分页列表 🔖
		 * @param {PageFileInput} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFilePagePost(body?: PageFileInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFilePagePost(body, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 文件预览 🔖
		 * @param {number} id
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFilePreviewIdGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultIActionResult>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFilePreviewIdGet(id, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 根据关联查询附件
		 * @param {string} [relationName] 关联对象名称
		 * @param {number} [relationId] 关联对象Id
		 * @param {string} [fileTypes] 文件类型：多个以\&quot;,\&quot;分割
		 * @param {number} [belongId] 所属Id
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileRelationFilesGet(
			relationName?: string,
			relationId?: number,
			fileTypes?: string,
			belongId?: number,
			options?: AxiosRequestConfig
		): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileRelationFilesGet(relationName, relationId, fileTypes, belongId, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 更新文件 🔖
		 * @param {SysFile} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUpdatePost(body?: SysFile, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUpdatePost(body, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 上传头像 🔖
		 * @param {Blob} [file]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadAvatarPostForm(file?: Blob, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadAvatarPostForm(file, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 上传文件Base64 🔖
		 * @param {UploadFileFromBase64Input} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadFileFromBase64Post(
			body?: UploadFileFromBase64Input,
			options?: AxiosRequestConfig
		): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadFileFromBase64Post(body, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 上传文件 🔖
		 * @param {Blob} [file]
		 * @param {string} [path]
		 * @param {string} [savePath]
		 * @param {string} [allowSuffix]
		 * @param {string} [fileType]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadFilePostForm(
			file?: Blob,
			path?: string,
			savePath?: string,
			allowSuffix?: string,
			fileType?: string,
			options?: AxiosRequestConfig
		): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadFilePostForm(file, path, savePath, allowSuffix, fileType, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 上传多文件 🔖
		 * @param {Array<Blob>} [files]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadFilesPostForm(files?: Array<Blob>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadFilesPostForm(files, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
		/**
		 *
		 * @summary 上传电子签名 🔖
		 * @param {Blob} [file]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadSignaturePostForm(file?: Blob, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSysFile>>> {
			const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadSignaturePostForm(file, options);
			return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
				const axiosRequestArgs: AxiosRequestConfig = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
				return axios.request(axiosRequestArgs);
			};
		},
	};
};

/**
 * SysFileApi - factory interface
 * @export
 */
export const SysFileApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
	return {
		/**
		 *
		 * @summary 删除文件 🔖
		 * @param {DeleteFileInput} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileDeletePost(body?: DeleteFileInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
			return SysFileApiFp(configuration)
				.apiSysFileDeletePost(body, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 下载指定文件Base64格式 🔖
		 * @param {string} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileDownloadFileBase64Post(body?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultString>> {
			return SysFileApiFp(configuration)
				.apiSysFileDownloadFileBase64Post(body, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 根据文件Id或Url下载 🔖
		 * @param {SysFile} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileDownloadFilePost(body?: SysFile, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultIActionResult>> {
			return SysFileApiFp(configuration)
				.apiSysFileDownloadFilePost(body, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 获取文件 🔖
		 * @param {number} [id]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileFileGet(id?: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFileFileGet(id, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 获取文件分页列表 🔖
		 * @param {PageFileInput} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFilePagePost(body?: PageFileInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFilePagePost(body, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 文件预览 🔖
		 * @param {number} id
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFilePreviewIdGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultIActionResult>> {
			return SysFileApiFp(configuration)
				.apiSysFilePreviewIdGet(id, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 根据关联查询附件
		 * @param {string} [relationName] 关联对象名称
		 * @param {number} [relationId] 关联对象Id
		 * @param {string} [fileTypes] 文件类型：多个以\&quot;,\&quot;分割
		 * @param {number} [belongId] 所属Id
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileRelationFilesGet(relationName?: string, relationId?: number, fileTypes?: string, belongId?: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFileRelationFilesGet(relationName, relationId, fileTypes, belongId, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 更新文件 🔖
		 * @param {SysFile} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUpdatePost(body?: SysFile, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
			return SysFileApiFp(configuration)
				.apiSysFileUpdatePost(body, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 上传头像 🔖
		 * @param {Blob} [file]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadAvatarPostForm(file?: Blob, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFileUploadAvatarPostForm(file, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 上传文件Base64 🔖
		 * @param {UploadFileFromBase64Input} [body]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadFileFromBase64Post(body?: UploadFileFromBase64Input, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFileUploadFileFromBase64Post(body, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 上传文件 🔖
		 * @param {Blob} [file]
		 * @param {string} [path]
		 * @param {string} [savePath]
		 * @param {string} [allowSuffix]
		 * @param {string} [fileType]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadFilePostForm(
			file?: Blob,
			path?: string,
			savePath?: string,
			allowSuffix?: string,
			fileType?: string,
			options?: AxiosRequestConfig
		): Promise<AxiosResponse<AdminResultSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFileUploadFilePostForm(file, path, savePath, allowSuffix, fileType, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 上传多文件 🔖
		 * @param {Array<Blob>} [files]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadFilesPostForm(files?: Array<Blob>, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFileUploadFilesPostForm(files, options)
				.then((request) => request(axios, basePath));
		},
		/**
		 *
		 * @summary 上传电子签名 🔖
		 * @param {Blob} [file]
		 * @param {*} [options] Override http request option.
		 * @throws {RequiredError}
		 */
		async apiSysFileUploadSignaturePostForm(file?: Blob, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
			return SysFileApiFp(configuration)
				.apiSysFileUploadSignaturePostForm(file, options)
				.then((request) => request(axios, basePath));
		},
	};
};

/**
 * SysFileApi - object-oriented interface
 * @export
 * @class SysFileApi
 * @extends {BaseAPI}
 */
export class SysFileApi extends BaseAPI {
	/**
	 *
	 * @summary 删除文件 🔖
	 * @param {DeleteFileInput} [body]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileDeletePost(body?: DeleteFileInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileDeletePost(body, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 下载指定文件Base64格式 🔖
	 * @param {string} [body]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileDownloadFileBase64Post(body?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultString>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileDownloadFileBase64Post(body, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 根据文件Id或Url下载 🔖
	 * @param {SysFile} [body]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileDownloadFilePost(body?: SysFile, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultIActionResult>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileDownloadFilePost(body, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 获取文件 🔖
	 * @param {number} [id]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileFileGet(id?: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileFileGet(id, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 获取文件分页列表 🔖
	 * @param {PageFileInput} [body]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFilePagePost(body?: PageFileInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFilePagePost(body, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 文件预览 🔖
	 * @param {number} id
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFilePreviewIdGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultIActionResult>> {
		return SysFileApiFp(this.configuration)
			.apiSysFilePreviewIdGet(id, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 根据关联查询附件
	 * @param {string} [relationName] 关联对象名称
	 * @param {number} [relationId] 关联对象Id
	 * @param {string} [fileTypes] 文件类型：多个以\&quot;,\&quot;分割
	 * @param {number} [belongId] 所属Id
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileRelationFilesGet(
		relationName?: string,
		relationId?: number,
		fileTypes?: string,
		belongId?: number,
		options?: AxiosRequestConfig
	): Promise<AxiosResponse<AdminResultListSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileRelationFilesGet(relationName, relationId, fileTypes, belongId, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 更新文件 🔖
	 * @param {SysFile} [body]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileUpdatePost(body?: SysFile, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileUpdatePost(body, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 上传头像 🔖
	 * @param {Blob} [file]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileUploadAvatarPostForm(file?: Blob, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileUploadAvatarPostForm(file, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 上传文件Base64 🔖
	 * @param {UploadFileFromBase64Input} [body]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileUploadFileFromBase64Post(body?: UploadFileFromBase64Input, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileUploadFileFromBase64Post(body, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 上传文件 🔖
	 * @param {Blob} [file]
	 * @param {string} [path]
	 * @param {string} [savePath]
	 * @param {string} [allowSuffix]
	 * @param {string} [fileType]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileUploadFilePostForm(
		file?: Blob,
		path?: string,
		savePath?: string,
		allowSuffix?: string,
		fileType?: string,
		options?: AxiosRequestConfig
	): Promise<AxiosResponse<AdminResultSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileUploadFilePostForm(file, path, savePath, allowSuffix, fileType, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 上传多文件 🔖
	 * @param {Array<Blob>} [files]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileUploadFilesPostForm(files?: Array<Blob>, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileUploadFilesPostForm(files, options)
			.then((request) => request(this.axios, this.basePath));
	}
	/**
	 *
	 * @summary 上传电子签名 🔖
	 * @param {Blob} [file]
	 * @param {*} [options] Override http request option.
	 * @throws {RequiredError}
	 * @memberof SysFileApi
	 */
	public async apiSysFileUploadSignaturePostForm(file?: Blob, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSysFile>> {
		return SysFileApiFp(this.configuration)
			.apiSysFileUploadSignaturePostForm(file, options)
			.then((request) => request(this.axios, this.basePath));
	}
}
